import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Scanner;

import org.junit.Test;

public class HelloWorld {
	
	@Test
	public void test11() {
		String str = "23";
		int n = Integer.parseInt(str);
		System.out.println(n);
	}

	// main 入口函数
	public static void main(String[] args) {
		// syso 在控制台打印
		// System.out.println("HelloWorld");

		User user = new User();
		// The field User.id is not visible
//		user.id = 1;
//		user.name = "张三";
//		user.age = 223;
//		user.gender = "男";
		user.setId(1);
		user.setName("张三");
		user.setAge(223);
		user.setGender("男");

		int id = user.getId();
		String name = user.getName();
		int age = user.getAge();
		String gender = user.getGender();
		System.out.println(id);
		System.out.println(name);
		System.out.println(age);
		System.out.println(gender);

		System.out.println("--------------");
		System.out.println("--------------");
		System.out.println("--------------");
		System.out.println(user);
		// The method test() is undefined for the type HelloWorld
		// test();
	}

	private static void test() {
		// syst: systrace
		System.out.println("HelloWorld.test()");
	}

	// 员工：id 名字 年龄 性别
	@Test
	public void test1() {
		User user = new User(1, "zhangsan", 23, "男");
		System.out.println(user);
	}

	@Test
	public void test2() {
		// 存放User类型的数组，前面的User只是表示数组里面放什么东西
		// User[] array = new User[3];
		// User array1[] = new User[3];
		// ArrayList是对数组的封装
		// 1、不用关心长度问题
		// 2、不需要关心下标
		ArrayList<User> list = new ArrayList<User>();
		// 读取控制台的输入信息
		Scanner scanner = new Scanner(System.in);
		while (true) {
			System.out.println("请输入用户的id：");
			int id = scanner.nextInt();
			System.out.println("请输入用户名：");
			String name = scanner.next();
			System.out.println("请输入用户的年龄：");
			int age = scanner.nextInt();
			System.out.println("请输入用户的性别：");
			String gender = scanner.next();
			User user = new User(id, name, age, gender);
			list.add(user);

			System.out.println("您是否要退出？-1退出，其他继续");
			int quit = scanner.nextInt();
			if (quit == -1) {
				break;
			}
		}

		/*for (int i = 0; i < list.size(); i++) {
			User user = list.get(i);
			System.out.println(user);
		}*/

		// foreach
		for (User user : list) {
			System.out.println(user);
		}
		
		// 奇技淫巧
		// for (;;)
		while (true) {
			System.out.println("----------------------------");
			System.out.println("根据id搜索：1");
			System.out.println("根据name搜索：2");
			System.out.println("根据age搜索：3");
			System.out.println("根据gender搜索：4");
			System.out.println("退出输入-1，其他继续");
			System.out.println("----------------------------");
			int type = scanner.nextInt();
			// 非法或者退出条件，写在前面，直接退出
			if (type == -1) {
				System.out.println("退出");
				break;
			}
			
			switch (type) {
			case 1:
				// int类型判断相等：== 
				System.out.println("请输入要搜索的id:");
				int searchId = scanner.nextInt();
				boolean isSearchByIdFound = false;
				for (User user : list) {
					int id = user.getId();
					if (searchId == id) {
						System.out.println(user);
						isSearchByIdFound = true;
						break;
					}
				}
				if(isSearchByIdFound  == false) {
					System.out.println("没有该用户信息");
				}
				break;
			case 2: // 根据名字搜索
				System.out.println("请输入要搜索的名字:");
				String searchName = scanner.next();
				// 如果有就打印用户信息。
				// 如果搜索完了都没有，打印“没有该用户信息”
				// 根据名字没有找到
				boolean isSearchByNameFound = false;
				for (User user : list) {
					String name = user.getName();
					if (searchName.equals(name)) {
						System.out.println(user);
						isSearchByNameFound = true;
						break;
					}
				}
				if(isSearchByNameFound  == false) {
					System.out.println("没有该用户信息");
				}
				break;
			default:
				break;
			}
		}
	}

}
